import { getToken, setToken, removeToken } from '@/utils/auth'
import { login } from '@/api/user'
const state = {
  token: getToken()
}
const mutations = {
  setToken (state, token) {
    state.token = token // 跟新vuex 中的token值
    setToken(token) // cookie 值保存
  },
  removeToken (state) {
    state.token = null // 删除vuex的token
    removeToken() // 再清除缓存 vuex和 缓存数据的同步
  }
}
const actions = {
  // 登录方法 登录后修改并保存token值
  async login (context, data) {
    const res = await login(data)
    context.commit('setToken', res.token)
  },
  // 退出登录 移除token
  logout (context) {
    context.commit('removeToken')
  }
}

export default {
  namespaced: true,
  state,
  mutations,
  actions
}
